/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufc.si.tcc.qmusic.model;

import br.ufc.si.tcc.qmusic.properties.Properties;

/**
 *
 * @author Lucas Ismaily
 */
public class Nota implements Comparable {

    private String nota;
    private int volume;
    private double deltaTimeInicial;
    private double duracao;

    public Nota(String nota) {

        this.nota = nota;
    }

    public Nota() {
    }

    public double getDeltaTimeInicial() {
        return deltaTimeInicial;
    }

    public void setDeltaTimeInicial(double deltaTimeInicial) {
        this.deltaTimeInicial = deltaTimeInicial;
    }

    public double getDuracao() {
        return duracao;
    }

    public void setDuracao(double duracao) {
        this.duracao = duracao;
    }

    public String getNota() {
        return nota;
    }

    public void setNota(String nota) {
        this.nota = nota;
    }

    public int getVolume() {
        return volume;
    }

    public void setVolume(int volume) {
        this.volume = volume;
    }

    public boolean mudarNotacaoABCToCompleto() {

        //Dó
        if (nota.equals(Properties.DO)) {
            nota = Properties.NOTA_DO;
            return true;
        }
        if (nota.equals(Properties.DO_BEMOL)) {
            nota = Properties.NOTA_DO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.DO_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_DO_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.DO_SUSTENIDO)) {
            nota = Properties.NOTA_DO_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.DO_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_DO_DOBRADO_SUSTENIDO;
            return true;
        }
        //Re
        if (nota.equals(Properties.RE)) {
            nota = Properties.NOTA_RE;
            return true;
        }
        if (nota.equals(Properties.RE_BEMOL)) {
            nota = Properties.NOTA_RE_BEMOL;
            return true;
        }
        if (nota.equals(Properties.RE_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_RE_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.RE_SUSTENIDO)) {
            nota = Properties.NOTA_RE_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.RE_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_RE_DOBRADO_SUSTENIDO;
            return true;
        }
        //MI
        if (nota.equals(Properties.MI)) {
            nota = Properties.NOTA_MI;
            return true;
        }
        if (nota.equals(Properties.MI_BEMOL)) {
            nota = Properties.NOTA_MI_BEMOL;
            return true;
        }
        if (nota.equals(Properties.MI_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_MI_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.MI_SUSTENIDO)) {
            nota = Properties.NOTA_MI_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.MI_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_MI_DOBRADO_SUSTENIDO;
            return true;
        }
        //FA
        if (nota.equals(Properties.FA)) {
            nota = Properties.NOTA_FA;
            return true;
        }
        if (nota.equals(Properties.FA_BEMOL)) {
            nota = Properties.NOTA_FA_BEMOL;
            return true;
        }
        if (nota.equals(Properties.FA_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_FA_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.FA_SUSTENIDO)) {
            nota = Properties.NOTA_FA_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.FA_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_FA_DOBRADO_SUSTENIDO;
            return true;
        }
        //SOL
        if (nota.equals(Properties.SOL)) {
            nota = Properties.NOTA_SOL;
            return true;
        }
        if (nota.equals(Properties.SOL_BEMOL)) {
            nota = Properties.NOTA_SOL_BEMOL;
            return true;
        }
        if (nota.equals(Properties.SOL_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_SOL_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.SOL_SUSTENIDO)) {
            nota = Properties.NOTA_SOL_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.SOL_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_SOL_DOBRADO_SUSTENIDO;
            return true;
        }
        //LA
        if (nota.equals(Properties.LA)) {
            nota = Properties.NOTA_LA;
            return true;
        }
        if (nota.equals(Properties.LA_BEMOL)) {
            nota = Properties.NOTA_LA_BEMOL;
            return true;
        }
        if (nota.equals(Properties.LA_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_LA_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.LA_SUSTENIDO)) {
            nota = Properties.NOTA_LA_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.LA_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_LA_DOBRADO_SUSTENIDO;
            return true;
        }
        //SI
        if (nota.equals(Properties.SI)) {
            nota = Properties.NOTA_SI;
            return true;
        }
        if (nota.equals(Properties.SI_BEMOL)) {
            nota = Properties.NOTA_SI_BEMOL;
            return true;

        }
        if (nota.equals(Properties.SI_DOBRADO_BEMOL)) {
            nota = Properties.NOTA_SI_DOBRADO_BEMOL;
            return true;
        }
        if (nota.equals(Properties.SI_SUSTENIDO)) {
            nota = Properties.NOTA_SI_SUSTENIDO;
            return true;
        }
        if (nota.equals(Properties.SI_DOBRADO_SUSTENIDO)) {
            nota = Properties.NOTA_SI_DOBRADO_SUSTENIDO;
            return true;
        }
        return false;
    }

    @Override
    public int compareTo(Object o) {
        Nota n = (Nota) o;

        if (n.getDeltaTimeInicial() < this.deltaTimeInicial) {
            return 1;
        } else if (n.getDeltaTimeInicial() > this.deltaTimeInicial) {
        }
        return 0;
    }
}
